Skip to main content

Average of Multiple Matrices along Rows

This is an example of computing the elementwise average of the axiswise average of matrices M1 ad M2 along the rows.

from csdl_om import Simulatorfrom csdl import Modelimport csdlimport numpy as np

class ExampleMultipleMatrixAlong1(Model):
    def define(self):        n = 3        m = 6
        # Declare a matrix of shape 3x6 as input        M1 = self.declare_variable('M1',                                   val=np.arange(n * m).reshape((n, m)))
        # Declare another matrix of shape 3x6 as input        M2 = self.declare_variable('M2',                                   val=np.arange(n * m,                                                 2 * n * m).reshape(                                                     (n, m)))
        # Output the elementwise average of the axiswise average of        # matrices M1 ad M2 along the columns        self.register_output(            'multiple_matrix_average_along_1',            csdl.average(M1, M2, axes=(1, )),        )

sim = Simulator(ExampleMultipleMatrixAlong1())sim.run()
print('M1', sim['M1'].shape)print(sim['M1'])print('M2', sim['M2'].shape)print(sim['M2'])print('multiple_matrix_average_along_1',      sim['multiple_matrix_average_along_1'].shape)print(sim['multiple_matrix_average_along_1'])
[[ 0.  1.  2.  3.  4.  5.] [ 6.  7.  8.  9. 10. 11.] [12. 13. 14. 15. 16. 17.]]M2 (3, 6)[[18. 19. 20. 21. 22. 23.] [24. 25. 26. 27. 28. 29.] [30. 31. 32. 33. 34. 35.]]multiple_matrix_average_along_1 (3,)[11.5 17.5 23.5]